#pragma once
#include "Vertex.h"
#include "Texture.h"
#include "Model.h"
#include "Shader.h"
#include "Camera.h"
#include "Matrix.h"

class Object
{
private:
	Texture** m_Tex;
	Model* m_Model;
	Shader* m_Shader;
	Camera* m_Camera;
	Vector4 m_Color;
	int m_NumTex;
	char ID[10];

public:
	Vector3 m_Position;
	Vector3 m_Rotation;
	float m_Scale;
	void Init(const char* ID, const Vector3& position, const Vector3& rotation, const float& scale, const Vector4& color, const int numTexture, Texture** tex, Model* model, Shader* shader, Camera* camera);
	void Draw(const Matrix &transform, const bool isFill = false, Shader* lightCastShader = NULL);
	Vector4 GetColor();
	char* GetID();
	Object(void);
	~Object(void);
};
